#pragma once

#include "BasicObject.h"
#include "action.h"



namespace BAA
{


	// forward declaration

	class Action;

	class Condition:public BasicObject
	{
	public:

		//enum Response
		//{
		//	ABSOLUTLELY_TRUE     9999999999,
		//	ABSOLUTELY_FALSE    -9999999999,
		//};

		Condition(const std::string name):BasicObject(name)
		{
			
		}


		~Condition()
		{

		}


		Action * ParentAction() const { return mParentAction; }
		void ParentAction(Action * val) { mParentAction = val; }

		virtual float isTrue()=0;

	protected:
		Action * mParentAction;


	};// end class


	//////////////////////////////////////////////////////////////////////////
	// Conditions Vector
	//////////////////////////////////////////////////////////////////////////
	typedef std::vector<Condition*>										Conditions;
}// end namespace
